package com.ztorn.fiscale.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ztorn.common.core.annotation.Excel;
import com.ztorn.common.core.web.domain.BaseEntity;

/**
 * 配单记录对象 fiscale_refund_matching
 * 
 * @author ztorn
 * @date 2025-09-20
 */
public class FiscaleRefundMatching extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 配单ID */
    private Long matchingId;

    /** 报关单ID */
    @Excel(name = "报关单ID")
    private Long declarationId;

    /** 发票ID */
    @Excel(name = "发票ID")
    private Long invoiceId;

    /** 匹配方式（auto-自动，manual-手动） */
    @Excel(name = "匹配方式", readConverterExp = "auto=自动,manual=手动")
    private String matchingType;

    /** 匹配时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "匹配时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date matchingTime;

    /** 匹配原因（用于手动匹配时记录原因） */
    @Excel(name = "匹配原因")
    private String matchReason;

    /** 状态（matched-已匹配，cancelled-已取消，exception-异常） */
    @Excel(name = "状态", readConverterExp = "matched=已匹配,cancelled=已取消,exception=异常")
    private String status;

    // 关联对象
    /** 报关单信息 */
    private FiscaleCustomsDeclaration declaration;
    
    /** 发票信息 */
    private FiscaleTaxInvoice invoice;

    public void setMatchingId(Long matchingId) 
    {
        this.matchingId = matchingId;
    }

    public Long getMatchingId() 
    {
        return matchingId;
    }
    public void setDeclarationId(Long declarationId) 
    {
        this.declarationId = declarationId;
    }

    public Long getDeclarationId() 
    {
        return declarationId;
    }
    public void setInvoiceId(Long invoiceId) 
    {
        this.invoiceId = invoiceId;
    }

    public Long getInvoiceId() 
    {
        return invoiceId;
    }
    public void setMatchingType(String matchingType) 
    {
        this.matchingType = matchingType;
    }

    public String getMatchingType() 
    {
        return matchingType;
    }
    public void setMatchingTime(Date matchingTime) 
    {
        this.matchingTime = matchingTime;
    }

    public Date getMatchingTime() 
    {
        return matchingTime;
    }
    public void setMatchReason(String matchReason) 
    {
        this.matchReason = matchReason;
    }

    public String getMatchReason() 
    {
        return matchReason;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public FiscaleCustomsDeclaration getDeclaration() {
        return declaration;
    }

    public void setDeclaration(FiscaleCustomsDeclaration declaration) {
        this.declaration = declaration;
    }

    public FiscaleTaxInvoice getInvoice() {
        return invoice;
    }

    public void setInvoice(FiscaleTaxInvoice invoice) {
        this.invoice = invoice;
    }
}